/**
 * 
 */
package com.zuipin.service;

import java.text.ParseException;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.Prize;
import com.zuipin.entity.WinningRule;
import com.zuipin.framework.exception.CustomException;
import com.zuipin.framework.result.Result;

/** 
 * @ClassName: IWinningRuleService 
 * @author wuyicheng
 * @time 2017年5月5日上午11:48:08 
 */
public interface IWinningRuleService {
	/**
	 * 查询（根据主键ID查询）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public WinningRule findById(@Param("id") Long id);
	
	/**
	 * 删除（根据主键ID删除）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public int deleteByPrimaryKey(@Param("id") Long id);
	
	/**
	 * 添加 （匹配有值的字段）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public int insert(WinningRule winningRule);
	
	/**
	 * 修改 （匹配有值的字段）
	 * 
	 * @author: wuyicheng 
	 * @date: 2017年4月18日下午4:50:31 
	 **/
	public int update(WinningRule winningRule);
	
	/** 
	 * 统计可参与次数
	 * 
	 * @Title: countCanParticipateNumber 
	 * @author: wuyicheng
	 * @date: 2017年5月5日下午5:15:26 
	 * @param memberId
	 * @param sysId
	 * @return
	 * @return: long
	 * @throws 
	 */
	public long countCanParticipateNumber(Long memberId, Long sysId);
	
	/**
	 * @return  
	 *
	 * @Title: getWinningResult 
	 * @author: wuyicheng
	 * @date: 2017年5月5日下午6:08:44 
	 * @param memberId
	 * @param sysId
	 * @return: void
	 * @throws 
	 */
	public Result<Map<String, Object>> getWinningResult(Long memberId, Long sysId);
	
	/** 
	 *
	 * @Title: getRandomRule 
	 * @author: wuyicheng
	 * @date: 2017年5月8日下午9:10:20 
	 * @return
	 * @return: WinningRule
	 * @throws 
	 */
	WinningRule getRandomRule();
	
	public Result<Prize> getDrawResult(Long memberId, Long sysId, String serialNumber,
			String device) throws ParseException, CustomException;
	
}
